203. 移除链表元素
题目
给你一个链表的头节点 head
和一个整数 val
,请你删除链表中所有满足 Node.val == val
的节点,并返回 新的头节点 。
示例 1:
1 2
| 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]
|
示例 2:
1 2
| 输入:head = [], val = 1 输出:[]
|
示例 3:
1 2
| 输入:head = [7,7,7,7], val = 7 输出:[]
|
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next
class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: dummy_node = ListNode(next=head)
current_node = dummy_node while current_node.next is not None: if current_node.next.val == val: current_node.next = current_node.next.next else: current_node = current_node.next return dummy_node.next
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| type ListNode struct { Val int Next *ListNode }
func removeElements(head *ListNode, val int) *ListNode { dummyNode := ListNode{ Next: head, } currentNode := &dummyNode for currentNode.Next != nil{ if currentNode.Next.Val == val{ currentNode.Next = currentNode.Next.Next }else{ currentNode = currentNode.Next } } return dummyNode.Next }
|
变体
总结
参考